package woshiheima13;

import java.util.Arrays;

/**
 * 希尔排序
 */

public class ShellSort {
    public static void main(String[] args) {
        int [] arr = new int[]{3,2,0,4,6,9,7};
        shellSort(arr);
        System.out.println(Arrays.toString(arr));

    }
    public static void shellSort(int [] arr){
        int d;
        int i;
        int j;
        //循环的次数
        for (d=arr.length/2;d>0;d/=2){
            //遍历所有的数
            //先遍历d以后的数
            for (i=d;i<arr.length;i++){
                //然后通过后面的数去找前面的数
                for (j=i-d;j>=0;j-=d){
                    //比较前后的数的大小然后换位
                    if (arr[j]>arr[j+d]){
                        int temp= arr[j];
                        arr[j]=arr[j+d];
                        arr[j+d]=temp;
                    }
                }
            }
        }
    }
}
